/*
 * libArchivoLog.h
 *
 *  Created on: 14/04/2012
 *      Author: utnso
 */

#ifndef LIBARCHIVOLOG_H_
#define LIBARCHIVOLOG_H_

//INCLUDES
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <pthread.h>
#include <fcntl.h>
#include <unistd.h>
#include <stdarg.h>
#include "libMat.h"

//CONSTANTES

#define NIVEL_LOG_NULO 0
#define NIVEL_LOG_OBLIGATORIO 1
#define NIVEL_LOG_OBLIGATORIO_IMPR 2
#define NIVEL_LOG_BAJO 3
#define NIVEL_LOG_BAJO_IMPR 4
#define NIVEL_LOG_MEDIO 5
#define NIVEL_LOG_MEDIO_IMPR 6
#define NIVEL_LOG_ALTO 7
#define NIVEL_LOG_ALTO_IMPR 8

#define MAX_PATH_LONG 150
#define MAX_LINEA_LOG 1000

//TIPOS

//FUNCIONES

void inicializarPathLogueo(char*);

void inicializarNivelLogueo(uint8_t);

void loguearCadena(char*, uint8_t);
/*Esta funcion escribe en un archivo una cadena dada.
 * ------------------------------------------------------------
 * Recibe la cadena a ingresar y el nivel del logueo a
 * registrar.
 */

void loguearDatos(char*, time_t, char*, uint32_t, uint32_t, char*, uint8_t);
/*Esta funcion escribe en un archivo una cadena formada por ciertos
 * datos.
 * ------------------------------------------------------------
 * Recibe el tipo de logueo, el tiempo en formato time_t, el nombre
 * del proceso, la id del proceso, la id del thread, un comentario
 * a loguear y el nivel del logueo a registrar.
 */

void loguearTemplate(uint8_t, char*, ...);

void loguearDatosTemplate(char*, time_t, char*, uint32_t, uint32_t, uint8_t, char*, ...);

void cerrarArchivoLog(void);
/*Esta funcion se encarga de cerrar el archivo de log.
 */

#endif /* LIBARCHIVOLOG_H_ */
